#ifndef __DRV_L2_AEAWB_H__
#define CDSP_AE_CTRL_EN			0x01
#define CDSP_AWB_CTRL_EN		0x02
#define CDSP_AF_CTRL_EN			0x04
#define CDSP_HIST_CTRL_EN		0x08
#define CDSP_LUM_STATUS			0x10
#define CDSP_LOW_LUM			0x20
#define CDSP_HIGH_LUM			0x40
#define CDSP_AWB_SET_GAIN		0x80
#define CDSP_SAT_SWITCH			0x100
#define CDSP_AE_UPDATE			0x200
#define CDSP_AE_MSG_SEND		0x400
#define CDSP_AWB_MSG_SEND		0x800
//#define CDSP_ND_EN				0x1000

#define C_SENSOR_SET_AE			0x123456dd
#define C_SENSOR_SET_AE_STOP	0x3456dd88
#define C_SENSOR_SET_DENOISE	0x5678aabb

#define C_GP_DO_AE				0x33445566
#define C_GP_DO_AE_STOP			0x88779965
#define C_GP_DO_AWB				0x44556677
#define C_GP_DO_AWB_NEW			0x55667788
#define C_GP_DO_AWB_STOP		0x54687691


typedef struct
{
	// ev index
	INT32S ae_ev_step;
	INT32S sensor_ev_idx;
	INT32U get_lum;
	INT32U avg_lum;
	INT32S digital_gain;
	INT32U awb_mode;
	INT32U ae_meter;
	INT32S awbret;
	INT32U edge_lvel;
	INT32S satcontr_idx;
} ae_info_t;

INT32U	gp_aeawb_create(INT32U arg);
INT32U	gp_aeawb_del(void);
void	drv_l2_ae_awb_lock(void);
void	drv_l2_ae_awb_unlock(void);
void 	gp_ae_info_get(ae_info_t *ae_ifo);
void	gp_cdsp_ae_info_set(INT32S ev, INT32S ev_idx, INT32U lum, INT32U avg_lum, INT32S digi_gain);

extern void gp_aeawb_priority_set(INT8U prio_ae, INT8U prio_awb, INT8U prio_sensor_ae);

#endif // __DRV_L2_AEAWB_H__
